﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Bikiball.XLoader
{
    public enum TokenType
    {
        Name,
        String,
        Integer,
        FloatVal,
        UUID,
        Integer_list,
        Float_list,
        OBrace,
        CBrace,
        OParen,
        CParen,
        OBracket,
        CBracket,
        OAngle,
        CAngle,
        Dot,
        Comma,
        Semicolon,
        Template,
        Word,
        DWord,
        Float,
        Double,
        Char,
        UChar,
        Sword,
        SDWord,
        Void,
        Lpstr,
        Unicode,
        CString,
        NString,
        Array,
        EOF,
        Invalid,
    }
    public struct Token
    {
        public TokenType Type;
        private Object _value;
        public T GetValue<T>()
        {
            return (T) _value;
        }

        public void SetValue<T>(T obj)
        {
            this._value = obj;
        }
    }
}
